﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dominio.Excepciones;

namespace Dominio.Entidades
{
    partial class Comisiones
    {
        public List<Comisiones> TraerTodas() 
        {
            AgenciaEntities contexto = Contexto.GetContexto();
            List<Comisiones> list = (from c in contexto.Comisiones where c.Juegos.Activo == true select c).ToList();

            return list;
        }

        public List<Comisiones> TraerComisionesJuego(Juegos juego)
        {
            AgenciaEntities contexto = Contexto.GetContexto();
            List<Comisiones> list = (from c in contexto.Comisiones where c.Juegos == juego select c).ToList();

            return list;
        }

        public void ActualizarComisiones() 
        {
            AgenciaEntities contexto = Contexto.GetContexto();
            Comisiones comision = null;
            try
            {
                List<Comisiones> listacomision = contexto.Comisiones.Where(c => c.IdJuego == this.IdJuego).ToList();
                comision = listacomision.Last();
            }
            catch {}
            //Si ya tenía comisión, actualiza y agrega.
            if (this.Monto > 100) throw new InvalidComisionException();
            if (comision != null) comision.FechaFin = this.FechaIni.AddDays(-1);
            contexto.AddToComisiones(this);
            this.Juegos.ActualizarComision(this.Monto);
            contexto.SaveChanges();
        }
    }
}
